home *** CD-ROM | disk | FTP | other *** search
/ Apple WWDC 1996 / WWDC96_1996 (CD).toast / Technology Materials / MacOS 8 Resources / Developer Tools / Mac OS 8 Interfaces & Libraries / Interfaces / CIncludes / TextObjectImaging.h < prev    next >
C/C++ Source or Header  |  1996-05-01  |  4KB  |  125 lines

  1. /*
  2.      File:        TextObjectImaging.h
  3.  
  4.      Contains:    Text object Imaging Interfaces.
  5.  
  6.      Version:    Technology:    System 8
  7.                  Release:    Universal Interfaces 3.0d3 on Copland DR1
  8.  
  9.      Copyright:    © 1984-1996 by Apple Computer, Inc.  All rights reserved.
  10.  
  11.      Bugs?:        If you find a problem with this file, send the file and version
  12.                  information (from above) and the problem description to:
  13.  
  14.                      Internet:    apple.bugs@applelink.apple.com
  15.                      AppleLink:    APPLE.BUGS
  16.  
  17. */
  18. #ifndef __TEXTOBJECTIMAGING__
  19. #define __TEXTOBJECTIMAGING__
  20.  
  21. #ifndef __CONDITIONALMACROS__
  22. #include <ConditionalMacros.h>
  23. #endif
  24. #ifndef __TYPES__
  25. #include <Types.h>
  26. #endif
  27. #ifndef __TEXTOBJECTS__
  28. #include <TextObjects.h>
  29. #endif
  30. #ifndef __QUICKDRAW__
  31. #include <Quickdraw.h>
  32. #endif
  33.  
  34. #ifdef __cplusplus
  35. extern "C" {
  36. #endif
  37.  
  38. #if PRAGMA_IMPORT_SUPPORTED
  39. #pragma import on
  40. #endif
  41.  
  42. #if PRAGMA_ALIGN_SUPPORTED
  43. #pragma options align=mac68k
  44. #endif
  45.  
  46. #if FOR_SYSTEM7_AND_SYSTEM8_COOPERATIVE
  47. /* An alias for OptionBits to make the intended usage in the prototypes easier to understand */
  48. typedef OptionBits TextObjectImagingOptions;
  49. /* Global direction choices */
  50. typedef UInt8 TextObjectDirection;
  51.  
  52. enum {
  53.     kTextObjSysDirection        = 0,
  54.     kTextObjLeftToRight            = 1,
  55.     kTextObjRightToLeft            = 2
  56. };
  57.  
  58. /* Imaging option bits */
  59.  
  60. enum {
  61.     kTextObjAlignmentOptionBits    = 0,
  62.     kTextObjJustifyBit            = 2,
  63.     kTextObjCondenseBit            = 3,
  64.     kTextObjElisionBits            = 4
  65. };
  66.  
  67. /* Alignment options */
  68.  
  69. enum {
  70.     kTextObjAlignWithDirectionOpt = 0 << kTextObjAlignmentOptionBits,
  71.     kTextObjAlignLeftOpt        = 1 << kTextObjAlignmentOptionBits,
  72.     kTextObjAlignRightOpt        = 2 << kTextObjAlignmentOptionBits,
  73.     kTextObjAlignCenterOpt        = 3 << kTextObjAlignmentOptionBits
  74. };
  75.  
  76. /* Justification options */
  77.  
  78. enum {
  79.     kTextObjDontJustifyOpt        = 0 << kTextObjJustifyBit,
  80.     kTextObjJustifyOpt            = 1 << kTextObjJustifyBit
  81. };
  82.  
  83. /* Condensed font options */
  84.  
  85. enum {
  86.     kTextObjTryCondenseOpt        = 0 << kTextObjCondenseBit,
  87.     kTextObjDontCondenseOpt        = 1 << kTextObjCondenseBit
  88. };
  89.  
  90. /* Elision options */
  91.  
  92. enum {
  93.     kTextObjElideMiddleOpt        = 0 << kTextObjElisionBits,
  94.     kTextObjElideEndOpt            = 1 << kTextObjElisionBits,
  95.     kTextObjElideBeginningOpt    = 2 << kTextObjElisionBits,
  96.     kTextObjDontElideOpt        = 3 << kTextObjElisionBits
  97. };
  98.  
  99. extern OSStatus DrawTextObject(ConstTextObject textObject, TextObjectIndex startIndex, TextObjectIndex endIndex, CGrafPtr grafPort, TextObjectDirection direction, TextObjectImagingOptions options);
  100.  
  101. extern OSStatus ComputeTextObjectBounds(ConstTextObject textObject, TextObjectIndex startIndex, TextObjectIndex endIndex, CGrafPtr grafPort, TextObjectDirection direction, TextObjectImagingOptions fontSubstitutionHint, Fixed *width, Fixed *lineHeight, Fixed *ascent);
  102.  
  103. extern OSStatus FlowTextObjectOntoLine(ConstTextObject textObject, TextObjectIndex startIndex, TextObjectIndex endIndex, CGrafPtr grafPort, Fixed availableWidth, TextObjectDirection direction, TextObjectImagingOptions alignAndFitOptions, Fixed *actualWidth);
  104.  
  105. extern OSStatus FlowTextObjectIntoBox(ConstTextObject textObject, TextObjectIndex startIndex, TextObjectIndex endIndex, CGrafPtr grafPort, const Rect *box, TextObjectDirection direction, TextObjectImagingOptions alignAndJustOptions, Fixed *actualExtent, Fixed *lineHeight, TextObjectIndex *clipIndex);
  106.  
  107. extern OSStatus ComputeTextObjectBoxExtent(ConstTextObject textObject, TextObjectIndex startIndex, TextObjectIndex endIndex, CGrafPtr grafPort, const Rect *box, TextObjectDirection direction, TextObjectImagingOptions alignAndJustOptions, Fixed *actualExtent, Fixed *lineHeight, TextObjectIndex *clipIndex);
  108.  
  109. #endif
  110.  
  111. #if PRAGMA_ALIGN_SUPPORTED
  112. #pragma options align=reset
  113. #endif
  114.  
  115. #if PRAGMA_IMPORT_SUPPORTED
  116. #pragma import off
  117. #endif
  118.  
  119. #ifdef __cplusplus
  120. }
  121. #endif
  122.  
  123. #endif /* __TEXTOBJECTIMAGING__ */
  124.  
  125.